all: main

main: main.o add.a 
	gcc -o main main.o add.a -L. -lmy_print -I .

my_print.o:
	gcc -c my_print.c -I .

add.o: my_print
	gcc -c add.c -L. -lmy_print -I .

add.a: add.o 
	ar -rcs add.a add.o 

my_print: my_print.o
	gcc -fpic -shared -o libmy_print.so my_print.o

clean:
	rm -rf *.a
	rm -rf *.o
	rm main
